package com.ebs.md.fxmonitor.marketmonitor.config;

/**
 * Revision Author:
 *  $File: //depot/MarketData/fxmonitor/main/src/main/java/com/ebs/md/fxmonitor/marketmonitor/config/IEventConfigProvider.java $
 *  $Revision: #7 $
 *  $DateTime: 2012/05/31 14:41:51 $
 *  $Change: 111400 $
 *  $Author: Aviad.Yosef $
 */

public interface IEventConfigProvider
{

	/**
	 * 
	 * EventGroup: OffMarket
	 * 
	 * @param baseCurrencyIso
	 * @param localCurrencyIso
	 * @return value of minimum allowed spread (in pips) between the bid and offer, before raising the OffMarket event
	 *         value for example: 5 pips. in EUR/USD it represents the rate: 0.0005
	 */
	public int getOffMarketPipsThreshold(String baseCurrencyIso, String localCurrencyIso);
	
	/**
	 * 
	 * EventGroup: OffMarket
	 * 
	 * @param baseCurrencyIso
	 * @param localCurrencyIso
	 * @return value of minimum allowed amount, before raising the OffMarket event.
	 *         value is full amount, no scaling and no factors. 1 Million will be value : 1000000
	 */
	public long getOffMarketAmountThreshold(String baseCurrencyIso, String localCurrencyIso);
	
	/**
	 * 
	 * EventGroup: CrossMarket
	 * 
	 * @param baseCurrencyIso
	 * @param localCurrencyIso
	 * @return threshold interval in Milliseconds, before raising CrossMarket event.
	 */
	public long getCrossMarketIntervalThreshold(String baseCurrencyIso, String localCurrencyIso);
	
	/**
	 * 
	 * EventGroup: CentralBankActivity
	 * 
	 * @param dealCode (or FloorCode). values for example : "BNYL", "SGFX"
	 * @return true is this dealCode is monitored at all(whether it's a central bank at all). else, false.
	 */
	public boolean isCentralBankActivityMonitored(String dealCode);
	
	/**
	 * 
	 * EventGroup: CentralBankActivity
	 * 
	 * @param dealCode (or FloorCode).
	 * @return if bank is not monitored then Null.
	 *         if bank is monitored, than return threshold amount of quotes.
	 */
	public Long    getCentralBankActivityAmountThreshold(String dealCode);

	/**
	 * 
	 * EventGroup: TopOfBookChange
	 * 
	 * @param baseCurrencyIso
	 * @param localCurrencyIso
	 * @return true if we persist top of book change for the given currency pairs.
	 */
	public boolean    isTopOfBookPersistencePairsBlackListed(String baseCurrencyIso, String localCurrencyIso);
	
}
